package com.homedo.odin.solution.contract.pc;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.homedo.odin.solution.model.base.BaseResponse;
import com.homedo.odin.solution.model.dto.AttachmentInfoResponseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import lombok.Data;

@ApiModel(description = "系统方案详细返回信息")
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class SSolutionDetailResp extends BaseResponse {

    /**
     * 方案编号
     */
    @ApiModelProperty("方案编号")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long solutionId;

    /**
     * 方案名称
     */
    @ApiModelProperty("方案名称")
    private String solutionName;

    /**
     * 方案属性(1:专家方案 2:产品系统方案)
     */
    @ApiModelProperty("方案属性(1:专家方案 2:产品系统方案)")
    private Integer solutionType;

    /**
     * 建筑业态属性(多选)以逗号分隔
     */
    @ApiModelProperty("建筑业态属性(")
    private String buildingType;

    /**
     * 二级系统标签(多选)
     */
    @ApiModelProperty("二级系统标签(多选)")
    private String secondSysAttr;

    @ApiModelProperty("一级系统标签(单选)")
    private Integer firstSysAttr;

    /**
     * 方案简介
     */
    @ApiModelProperty("方案简介")
    private String description;

    /**
     * 方案配图
     */
    @ApiModelProperty("方案配图")
    private String matchPic;

    /**
     * 案例配图
     */
    @ApiModelProperty("案例配图")
    private String casePic;

    /**
     * 品牌(不为专家方案时必填)
     */
    @ApiModelProperty("品牌(不为专家方案时必填)")
    private String brand;

    /**
     * 方案关键字(多个以逗号分隔)
     */
    @ApiModelProperty("方案关键字(多个以逗号分隔)")
    private String solutionKeyword;
    /**
     * 是否允许下载 0:不允许 1:允许
     */
    @ApiModelProperty("是否允许下载 0:不允许 1:允许")
    private Integer isAdmitDownload;
    /**
     * 原价
     */
    @ApiModelProperty("原价")
    private BigDecimal originalPrice;
    /**
     * 收费标准
     */
    @ApiModelProperty("收费标准")
    private BigDecimal charges;
    /**
     * 文件存储位置
     */
    @ApiModelProperty("文件存储位置")
    private String attachment;

    /**
     * 是否推荐(0:否 1:是)
     */
    @ApiModelProperty("是否推荐(0:否 1:是)")
    private Integer isRecommend;

    /**
     * 状态 0:已保存 10:待专家审核 20:审核通过 21:审核驳回 30:上架中 31:下架中
     */
    @ApiModelProperty("状态 0:已保存 10:待专家审核  20:审核通过 21:审核驳回 30:上架中 31:下架中")
    private Integer status;

    @ApiModelProperty("审核意见")
    private String auditOpinion;

    /**
     * 创建日期
     */
    @ApiModelProperty("创建日期")
    private Date createTime;

    /**
     * 浏览量
     */
    @ApiModelProperty("浏览量")
    private Integer pageView;

    /**
     * 点赞量
     */
    @ApiModelProperty("点赞量")
    private Integer likeCount;

    /**
     * 评论量
     */
    @ApiModelProperty("评论量")
    private Integer commentCount;

    /**
     * 是否收藏
     */
    @ApiModelProperty("是否收藏 0:未收藏 1:已收藏")
    private Integer isCollect;

    /**
     * 下载量
     */
    @ApiModelProperty("下载量")
    private Integer downloadCount;

    /**
     * 曝光类型 1：精品 2：普通
     */
    @ApiModelProperty("曝光类型  0：免费 1：精品 2：普通")
    private Integer expType;
    /**
     * 是否是最新（0：否 1：是）
     */
    @ApiModelProperty("是否是最新（否：false 是：true）")
    private Boolean isNew;

    @ApiModelProperty("是否是我的方案:0：不是 1:是")
    private Integer isMy;

    @ApiModelProperty("是否是专家方案:否：false 是：true")
    private Boolean isExpert;

    @ApiModelProperty("是否收费 0：不收费 1：收费")
    private Integer isFree;

    // 支付情况
    @ApiModelProperty("订单编号")
    private Long orderNo;

    @ApiModelProperty("支付状态 20：待付款 30：付款完成 40：支付失败")
    private Integer payStatus;

    @ApiModelProperty("当前用户是否可以下载")
    private boolean userIsDownload;

    // 品牌信息
    // 新增字段
    @ApiModelProperty("方案上传者id")
    private Integer userId;

    @ApiModelProperty("公司名称")
    private String firmName;

    @ApiModelProperty("品牌图标")
    private String brandIocn;

    @ApiModelProperty("是否是活动方案")
    private boolean isActivitySolution;

    @ApiModelProperty("附件转图片信息")
    private List<AttachmentInfoResponseBean> attachmentInfoList;

}
